<?php


/**
 * Notes:
 * PROJECT_NAME : ERP v1.8 重构erp
 * User: 夏鱼儿<397072174@qq.com>
 * Date: 2024/1/6
 * Time: 9:31
 */

namespace app\service\traits\model;

trait GetAttr
{

    /**
     * 公司采购订单状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getOrderStatusTextAttr($value, $data): string
    {
        return match ($data['order_status']) {
            1 => '待审核',
            2 => '待签收',
            3 => '待入库',
            4 => '审核拒绝',
            5 => '已完成',
            default => '未知状态',
        };
    }

    /**
     * 公司采购订单状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getIdentityTextAttr($value, $data): string
    {
        return match ($data['identity']) {
            1 => '默认(不参与分红)',
            2 => '职能部门',
            3 => '市场部门(招商)',
            4 => '市场部门(服务)',
            5 => '合伙人',
            default => '未知状态',
        };
    }

    /**
     * 公司采购订单状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getIdentitySupplierTextAttr($value, $data): string
    {
        return match ($data['identity']) {
            1 => '默认(不参与分红)',
            2 => '职能部门',
            3 => '市场部门(招商)',
            4 => '市场部门(服务)',
            5 => '经销商',
            default => '未知状态',
        };
    }

    /**
     * 门店消费订单状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getStoreOrderStatusTextAttr($value, $data): string
    {
        return match ($data['order_status']) {
            1 => '待支付',
            2 => '待发货',
            3 => '待收货',
            4 => '已完成',
            5 => '已取消',
            6 => '商家取消发货',
            default => '未知状态',
        };
    }

    /**
     * 运单状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getTaskStatusTextAttr($value, $data): string
    {
        return match ($data['task_status']) {
            1 => '未开始',
            2 => '配送中',
            3 => '已完成',
            default => '未知状态',
        };
    }

    /**
     * 运单状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getDriverWithdrawStatusTextAttr($value, $data): string
    {
        return match ($data['status']) {
            1 => '待审核',
            2 => '已审核',
            3 => '已拒绝',
            default => '未知状态',
        };
    }

    /**
     * 门店订单渠道
     * @param $value
     * @param $data
     * @return string
     */
    public function getChannelTextAttr($value, $data): string
    {
        return match ($data['channel']) {
            1 => 'OMS',
            2 => 'SaaS',
            default => '未知状态',
        };
    }

    /**
     * 门店订单结算状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getSettlementStatusTextAttr($value, $data): string
    {
        return match ($data['settlement_status']) {
            1 => '待结算',
            2 => '已结算',
            3 => '已取消',
            default => '未知状态',
        };
    }

    /**
     * 门店订单支付方式
     * @param $value
     * @param $data
     * @return string
     */
    public function getPayTypeTextAttr($value, $data): string
    {
        return match ($data['pay_type']) {
            1 => '支付宝',
            2 => '微信',
            3 => '账期',
            4 => '余额',
            5 => '大额转账',
            6 => '银行卡支付',
            7 => '线下支付',
            8 => '其他',
            default => '未知状态',
        };
    }

    /**
     * 门店订单支付方式
     * @param $value
     * @param $data
     * @return string
     */
    public function getWarehouseStorageGoodsLogsTypeTextAttr($value, $data): string
    {
        return match ($data['type']) {
            1 => '采购入库',
            2 => '销售出库',
            default => '未知状态',
        };
    }

    /**
     * 盘点状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getWarehouseTakeStockStatusTextAttr($value, $data): string
    {
        //1:未盘点,2:盘点中,3:审核中,4:盘点结束,5:已驳回
        return match ($data['stock_status']) {
            1 => '盘点中',
            2 => '审核中',
            3 => '盘点结束',
            4 => '已驳回',
            default => '未知状态',
        };
    }

    /**
     * 盘点类型
     * @param $value
     * @param $data
     * @return string
     */
    public function getWarehouseTakeStockTypeTextAttr($value, $data): string
    {
        //1:全盘盘点,2:分类盘
        return match ($data['type']) {
            1 => '全盘盘点',
            2 => '分类盘',
            default => '未知状态',
        };
    }


    /**
     * 上架时间
     * @param $value
     * @param $data
     * @return int|string
     */
    public function getRackingTimeAttr($value, $data): int|string
    {
        if (!$value) return 0;
        return date('Y-m-d H:i:s', $value);
    }

    /**
     * 下架时间
     * @param $value
     * @param $data
     * @return int|string
     */
    public function getSoldOutTimeAttr($value, $data): int|string
    {
        if (!$value) return 0;
        return date('Y-m-d H:i:s', $value);
    }

    /**
     * 订单状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getIsOnCreditTextAttr($value, $data): string
    {
        return match ($data['is_on_credit']) {
            1 => '是',
            2 => '否',
            default => '未知状态',
        };
    }

    /**
     * 订单状态
     * @param $value
     * @param $data
     * @return string
     */
    public function getDataScopeTextAttr($value, $data): string
    {
        return match ($data['data_scope']) {
            1 => '全部数据权限',
            2 => '自定数据权限',
            3 => '本部门数据权限',
            4 => '本部门及以下数据权限',
            5 => '仅本人数据权限',
            default => '未知状态',
        };
    }


    public function getMenuTypeTextAttr($value, $data): string
    {
        return match ($data['menu_type']) {
            "M" => '目录',
            "C" => '菜单',
            "F" => '按钮',
            default => '未知状态',
        };
    }


    public function getCarTypeTextAttr($value, $data): string
    {
        return match ($data['type']) {
            1 => '小面',
            2 => '中面',
            3 => '微面',
            4 => '小货',
            5 => '中货',
            6 => '大货',
            7 => '冷藏车',
            8 => '私家车',
            default => '未知状态',
        };
    }

    public function getCarLengthTextAttr($value, $data): string
    {
        //车长 1:4米2,2:5米2,3:6米8,4:7米6,5:9米6,6:13米,7:其他
        return match ($data['length']) {
            1 => '4.2米',
            2 => '5.2米',
            3 => '6.8米',
            4 => '7.6米',
            5 => '9.6米',
            6 => '13米',
            7 => '其他',
            default => '未知状态',
        };
    }


    /**
     * 性别
     * @param $value
     * @param $data
     * @return string
     */
    public function getSexTextAttr($value, $data): string
    {
        return match ($data['sex']) {
            0 => '保密',
            1 => '男',
            2 => '女',
            default => '未知状态',
        };
    }


    /**
     * 是否下载
     * @param $value
     * @param $data
     * @return string
     */
    public function getIsDowTextAttr($value, $data): string
    {
        return match ($data['is_dow']) {
            1 => '是',
            2 => '否',
            default => '未知状态',
        };
    }

    /**
     * 是否打印
     * @param $value
     * @param $data
     * @return string
     */
    public function getIsPrintTextAttr($value, $data): string
    {
        return match ($data['is_print']) {
            1 => '是',
            2 => '否',
            default => '未知状态',
        };
    }

}